\chapter{Project Brief}
\label{cha:project-brief}

\paragraph{}
Our project is an "Online Model Sharer", which will allow users to create, modify and store class UML diagrams, users will also be able to import and export files as XML as and when they wish. It will be based on the client server model, where the server is thread based so it can handle many request at the same time. The server will be the front end to a centralized database, where users connect to the server via their client application and then send data requests to the server which then returns the data to the client application.
\paragraph{}
There will be two types of profiles the users can take, either an 'editing' or 'viewing', this will be used so we can limit the number of users editing a singe UML diagram at an given point in time. There will be no limit for the number users with the 'view' profile to simply look at any UML diagram at any given time. The limit for the maximum number of users editing a UML diagram will be three, all changes made by any user will be done in real time with the changes pushed out to all the other users, both editors and viewers.
\subparagraph{}
If two or more users make a change to the same part of the UML diagram the request the server receives first will be the one which makes the change and a message will be sent to the other user that their change cannot be made, so the worst case scenario would be the loss of the last object the user made. In the client application there will be a chat function so as the users with the 'view' profile can inform the editors of any ideas or corrections. 
